package com.hejielife.iterator;

/**
 * <hr>
 * 迭代器模式 :<br>
 * 给定一个语言，定义它的文法的一种表示，并定义一个解释器，这个解释器使用该表示来解释语言中的句子。
 * <hr>
 * 适用性 :<br>
 * 1.访问一个聚合对象的内容而无需暴露它的内部表示。 <br>
 * 2.支持对聚合对象的多种遍历。 <br>
 * 3.为遍历不同的聚合结构提供一个统一的接口(即,支持多态迭代)。
 * 
 */
public class Client {

	public static void main(String[] args) {
		// 声明出容器
		Aggregate agg = new ConcreteAggregate();

		// 产生对象数据放进去
		agg.add("abc");
		agg.add("aaa");
		agg.add("1234");

		// 遍历一下
		Iterator iterator = agg.iterator();
		while (iterator.hasNext()) {
			System.out.println(iterator.next());
		}
	}
}
